(deftemplate intrebare
    (slot stringIntrebare)
    (slot raspuns)
    )
(assert (intrebare (stringIntrebare nil)(raspuns nil)))
(defrule q1
	(intrebare (stringIntrebare nil)(raspuns nil))
	=>
	(printout t "Este un animal mare ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Este un animal mare")(raspuns ?r)))
	)
(defrule q2
	(intrebare (stringIntrebare "Este un animal mare")(raspuns DA))
	=>
	(printout t "Mananca soareci ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Mananca soareci")(raspuns ?r)))
	)
(defrule q3
	(intrebare (stringIntrebare "Este un animal mare")(raspuns NU))
	=>
	(printout t "Mananca alune ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Mananca alune")(raspuns ?r)))
	)
(defrule veverita
	(intrebare (stringIntrebare "Mananca alune")(raspuns DA))
	=>
	(printout t "Animalul preferat este o veverita" crlf)
	)
(defrule soarece
	(intrebare (stringIntrebare "Mananca alune")(raspuns NU))
	=>
	(printout t "Animalul preferat este un soricel" crlf)
	)
(defrule q4
	(intrebare (stringIntrebare "Mananca soareci")(raspuns NU))
	=>
	(printout t "Stie sa inoate ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Stie sa inoate")(raspuns ?r)))
	)
(defrule pisica
	(intrebare (stringIntrebare "Mananca soareci")(raspuns DA))
	=>
	(printout t "Animalul preferat este o pisica" crlf)
	)
(defrule q5
	(intrebare (stringIntrebare "Stie sa inoate")(raspuns NU))
	=>
	(printout t "Este ierbivor ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Este ierbivor")(raspuns ?r)))
	)
(defrule ratusca
	(intrebare (stringIntrebare "Stie sa inoate")(raspuns DA))
	=>
	(printout t "Animalul preferat este o ratusca" crlf)
	)
(defrule q6
	(intrebare (stringIntrebare "Este ierbivor")(raspuns NU))
	=>
	(printout t "Apara casa ? (DA/NU)" crlf)
	(bind ?r (read))
	(assert (intrebare (stringIntrebare "Apara casa")(raspuns ?r)))
	)
(defrule cal
	(intrebare (stringIntrebare "Este ierbivor")(raspuns DA))
	=>
	(printout t "Animalul preferat este un cal" crlf)
	)
(defrule q7
	(intrebare (stringIntrebare "Apara casa")(raspuns DA))
	=>
	(printout t "Animalul preferat este un caine " crlf)
	)
(run)
(facts)